The present invention relates to the field of spread spectrum wireless communications and to any other field that uses Pseudo-random Noise (PN) sequences, such as maximal length code sequences generated using a Linear Feedback Shift Register (LFSR), truncated maximal length code sequences or Gold code sequences.
Many spread spectrum and other communications systems utilize pseudo-random noise (PN) code sequences for scrambling communications, permitting separation of various transmitting stations, and other purposes. Generally speaking, a PN code sequence exhibits certain random-like properties, even though the code actually is generated in a deterministic manner. Most of the PN code sequences in common use are cyclically repeating sequences of digital 1""s and 0""s generated using one or more Linear Feedback Shift Registers (LFSRs), such as the maximal length code sequences described below in Section I of the Description of Preferred Embodiments, the truncated maximal length code sequences described below in Section II of the Description of Preferred Embodiments, and the Gold code sequences described below in Section III of the Description of Preferred Embodiments.
If a device is encoding its transmissions using a PN code sequence, then in order to decode those transmissions, the receiving device requires both the code itself and the proper synchronization with the transmitting device. As a result, once a communications channel is opened between two devices (and, therefore, synchronization has been established), it conventionally has been necessary for each device to continuously generate the PN code sequence, so as to maintain synchronization. It should be noted that such generators often require a high speed clock, such as one that operates at 1.2288 megahertz (MHz). Frequently, such clocks require relatively large power consumption. While this may not be a significant problem for a base station, it can be very significant for a mobile station that operates on battery power.
Some communications devices allow for xe2x80x9csleepxe2x80x9d periods, during which the PN sequence and other hardware necessary for transmitting or receiving signals may not be needed. An example is a Direct Sequence Spread Spectrum (DSSS) cellular system using long duration, rapidly switching (between 1""s and 0""s) PN sequences. Such cellular systems generally include provision for a sleep mode during which it is not necessary for the Mobile Station (MS), such as a hand held cellular phone, to receive the transmission from the Base Station (BS). In this way, portions of the mobile unit can be powered down during the sleep period and the average power drain can be decreased, thereby increasing the standby time of the battery powered unit.
At the end of a sleep period in a DSSS system, it is necessary for the MS to have a local version of the PN code sequence that is synchronized to that of the BS. Prior art designs continue to utilize a high speed clock for the purpose of maintaining the synchronization of the PN sequence during sleep. Thus, conventionally, the PN code sequence generator must remain enabled in order to maintain the PN sequence code synchronization. Since the prior art requires the maintenance of a high speed clock, the average power drain of the unit is higher than it would be if this clock source could be turned off.
The present invention addresses the foregoing concerns by advancing, or hopping, a PN code sequence by a number of states and then enabling the PN code sequence generator with the hopped state.
Thus, in one aspect, the present invention is directed to pseudo-random noise (PN) code sequence hopping by storing a base state of a PN code sequence generator that generates a PN code sequence and by identifying a number of states to advance the PN code sequence, the number being greater than one. A transformation function is obtained based on the number of states to advance the PN code sequence and then the PN code sequence is advanced by the identified number of states from the base state to obtain a new state, by utilizing the transformation function. Finally, the new state is loaded into the PN code sequence generator and the PN code sequence generator is enabled with the new state.
By advancing the state of the PN code sequence generator in the foregoing manner, the present invention can permit the generator (or at least the clock driving the generator) to be turned off for periods of time, thus frequently resulting in power savings. Alternatively, using this hopping technique, the PN code sequence generator can be used for generating other PN code sequences (such as for monitoring other base stations) when it is not necessary to monitor the current base station; then, when it is again necessary to monitor the current base station, the generator can be loaded with the appropriately hopped state and enabled with that state.
In a preferred embodiment of the present invention, the step of advancing the PN code sequence comprises multiplying the base state by an appropriate factor, such as a Galois Field (GF) polynomial or a matrix. In the former case, a serial Galois Field multiplier preferably is used to perform this multiplication, the serial Galois Field multiplier preferably including a linear feedback shift register which utilizes insertion architecture.
The techniques of the present invention can be applied, for example, either to a maximal length PN code sequence or to a truncated maximal length PN code sequence. The main difference between these two cases is the identification of the transformation function required to advance the state. Although the same types of transformation functions generally may be used for both cases, the parameters of those functions may be different based on whether or not truncation is being utilized. For example, in both cases the hop can be performed by multiplying the state by a GF polynomial raised to an exponent that is based on the number of state transitions. For non-truncated sequences, the exponent generally is the same as the number of state transitions, while for truncated sequences a modulo function may be performed or an additional factor introduced to account for the truncation.
In a further aspect, the invention is directed to pseudo-random noise (PN) code sequence hopping, in which an output PN code sequence is generated by generating and combining several intermediate PN code sequences, each of the intermediate PN code sequences being generated by a corresponding PN code sequence generator. A base state is stored for each of the plural intermediate PN code sequences, and the number of states to advance the output PN code sequence is identified, the number being greater than one. A transformation function is obtained for each of the plural intermediate PN code sequences, based on the number of states to advance the output PN code sequence, and then the base state for each intermediate PN code sequence is advanced by the number of states to advance the output PN code sequence, by utilizing the transformation function for such intermediate PN code sequence, to obtain a new state for such intermediate PN code sequence. The new state for each intermediate PN code sequence is then loaded into the corresponding PN code sequence generator, and the PN code sequence generators are enabled with the new states.
In the foregoing manner, a PN code sequence that is generated from several other PN code sequences can be hopped to a new state, thereby permitting the combined PN code sequence generator either to be shut down for a period of time (typically resulting in power savings) or to be used for other purposes. In either case, greater efficiency often can be achieved. The foregoing technique generally can be applied, for example, regardless of whether the various intermediate PN code sequences are truncated or non-truncated maximal length sequences.
The following comments briefly summarize how the present invention operates in a representative embodiment. At the end of a sleep period in a DSSS system, it is necessary for the MS to have a local version of the PN code sequence that is synchronized to that of the BS. Note that the PN code sequence is assumed to be synchronized prior to the sleep periodxe2x80x94thus, the information exists to bring up the PN code sequence at the appropriate state at the end of the sleep period. The present invention uses the state of the PN code sequence generator prior to the sleep period to calculate the appropriate generator state at a desired time after the end of the sleep period. In this way, the high speed clock that runs the PN generator LFSR can be turned off. A low speed clock, typically a 32 kHz oscillator, is maintained and controls a counter to let the system know when to turn back on. The low speed clock consumes less power than the high speed clock, and thus there is a net power savings.
A simple analogy is to a clock or watch. If one has an external timer and does not need the watch output for some period of time, one could set the timer to N hours, set the watch N hours ahead and turn the watch off. When the timer expires, the watch may be turned on and will display the correct time thereafter. In the present invention, the PN code sequence generator LFSR is analogous to the watch. The low speed clock is analogous to the timer. Setting the watch is analogous to performing the PN code sequence hop, which hops the LFSR state over all the intermediate states and directly from the state prior to the sleep period to the state after the sleep period.